testb $3,CS-ARGOFFSET(%rsp)
jnz 1f
/* Need to set the proper %ss (not NULL) for ring 3 iretq */
- movl $__KERNEL_DS|3,SS-ARGOFFSET(%rsp)
+ movl $__KERNEL_DS,SS-ARGOFFSET(%rsp)
jmp retint_restore_args # retrun from ring3 kernel
1:
movl $_TIF_ALLWORK_MASK,%edi
jnz restore_all_enable_events # != 0 => reenable event delivery
XEN_PUT_VCPU_INFO(%rsi)
- RESTORE_ARGS 0,8,0
- testb $3,8(%rsp) # check CS
- jnz user_mode
-kernel_mode:
- orb $3,1*8(%rsp)
- iretq
-user_mode:
+ RESTORE_ARGS 0,8,0
HYPERVISOR_IRET 0
/* edi: workmask, edx: work */
jnz 14f # process more events if necessary...
XEN_PUT_VCPU_INFO(%rsi)
RESTORE_ARGS 0,8,0
- testb $3,8(%rsp) # check CS
- jnz crit_user_mode
- orb $3,1*8(%rsp)
- iretq
-crit_user_mode:
HYPERVISOR_IRET 0
14: XEN_LOCKED_BLOCK_EVENTS(%rsi)